import { http } from "@/utils/http";

export type UserResult = {
  id: number;
  //用户名（登录账号）
  username: string;
  //  用户昵称
  nickname: string;
  // 真实姓名
  realName: string;
  //手机号
  phoneNum: string;
  // 电子邮箱
  email: string;
  // 性别
  gender: number;
  // 公司id
  companyId: number;
  // 公司名称
  companyName: string;
  //省份
  province: string;
  //城市
  city: string;
  //区域
  region: string;
  //创建时间
  createTime: string;
  // token
  token: string;
  // 角色id
  roleId: number;
  // 角色名称
  roleName: string;
  // 用户所拥有权限列表
  permissions: Array<string>;
  // 用户存储权限
  permissionStores: Array<string>;
  /// 用户状态与设置
  //用户是否被锁定
  isLocked: boolean;
  //在职状态（1 = 在职）
  employedStatus: number;
  //是否允许其他设备登录 0 = 不允许 1 = 允许
  allowOtherLogin: number;
  //登录次数
  loginCount: number;
  //最后登录时间（当前为空）
  lastLoginTime: string;
  //令牌过期时间（时间戳）
  expireTime: number;
  //加密后的密码
  password: string;
  //上级 ID（0 = 无上级）
  parentId: number;
  //备注信息（当前为空）
  remark: string;
};

export type RefreshTokenResult = {
  success: boolean;
  data: {
    /** `token` */
    accessToken: string;
    /** 用于调用刷新`accessToken`的接口时所需的`token` */
    refreshToken: string;
    /** `accessToken`的过期时间（格式'xxxx/xx/xx xx:xx:xx'） */
    expires: Date;
  };
};

/** 登录 */
export const getLogin = (data?: object) => {
  // return http.post<UserResult, object>("/login", { data });
  return http.post<BackModel, object>("/api/login/doLogin", { data });
};

/** 刷新`token` */
export const refreshTokenApi = (data?: object) => {
  return http.request<BackModel>("post", "/refresh-token", { data });
};
